<?xml version="1.0"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head><title>SASAPI</title><script src="../../../quicknav.js" type="text/javascript"></script><script><!--
document.quicknavBasePath="../../../index-files";
//--></script><link href="../../../style.css" title="JavaDoc" rel="stylesheet" type="text/css"/><link href="../../../unnatural.css" title="Unnatural" rel="alternate stylesheet" type="text/css"/><link href="../../../overview-summary.html" title="Overview" rel="top"/><meta name="generator" content="http://www.badgers-in-foil.co.uk/projects/as2api/"/></head><body><pre><span class="lineno" id="1">     1  </span><span class="comment doc">/**
<span class="lineno" id="2">     2  </span> * properties.TextShortcuts
<span class="lineno" id="3">     3  </span> * Special properties for the Tweener class to handle MovieClip filters
<span class="lineno" id="4">     4  </span> * The function names are strange/inverted because it makes for easier debugging (alphabetic order). They're only for internal use (on this class) anyways.
<span class="lineno" id="5">     5  </span> *
<span class="lineno" id="6">     6  </span> * @author		Zeh Fernando, Nate Chatellier, Arthur Debert
<span class="lineno" id="7">     7  </span> * @version		1.0.0
<span class="lineno" id="8">     8  </span> */</span>
<span class="lineno" id="9">     9  </span>
<span class="lineno" id="10">    10  </span><span class="key">import</span> caurina.transitions.Tweener;
<span class="lineno" id="11">    11  </span><span class="key">import</span> caurina.transitions.AuxFunctions;
<span class="lineno" id="12">    12  </span>
<span class="lineno" id="13">    13  </span><span class="key">class</span> caurina.transitions.properties.TextShortcuts {
<span class="lineno" id="14">    14  </span>
<span class="lineno" id="15">    15  </span>	<span class="comment doc">/**
<span class="lineno" id="16">    16  </span>	 * There's no constructor.
<span class="lineno" id="17">    17  </span>	 */</span>
<span class="lineno" id="18">    18  </span>	<span class="key">public</span> <span class="key">function</span> TextShortcuts () {
<span class="lineno" id="19">    19  </span>		trace (<span class="str_const">"This is an static class and should not be instantiated."</span>)
<span class="lineno" id="20">    20  </span>	}
<span class="lineno" id="21">    21  </span>
<span class="lineno" id="22">    22  </span>	<span class="comment doc">/**
<span class="lineno" id="23">    23  </span>	 * Registers all the special properties to the Tweener class, so the Tweener knows what to do with them.
<span class="lineno" id="24">    24  </span>	 */</span>
<span class="lineno" id="25">    25  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> init():Void {
<span class="lineno" id="26">    26  </span>		<span class="comment">// Normal properties</span>
<span class="lineno" id="27">    27  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text"</span>, _text_get, _text_set, undefined, _text_preProcess);
<span class="lineno" id="28">    28  </span><span class="comment">//		Tweener.registerSpecialPropertyModifier("_text", _text_modifier, _text_get);</span>
<span class="lineno" id="29">    29  </span>
<span class="lineno" id="30">    30  </span>		<span class="comment">// TextFormat-based properties</span>
<span class="lineno" id="31">    31  </span>		Tweener.registerSpecialPropertySplitter(<span class="str_const">"_text_color"</span>,		_generic_color_splitter, [<span class="str_const">"_text_color_r"</span>, <span class="str_const">"_text_color_g"</span>, <span class="str_const">"_text_color_b"</span>]);
<span class="lineno" id="32">    32  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_color_r"</span>,			_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"color"</span>, <span class="key">true</span>, <span class="str_const">"r"</span>]);
<span class="lineno" id="33">    33  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_color_g"</span>,			_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"color"</span>, <span class="key">true</span>, <span class="str_const">"g"</span>]);
<span class="lineno" id="34">    34  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_color_b"</span>,			_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"color"</span>, <span class="key">true</span>, <span class="str_const">"b"</span>]);
<span class="lineno" id="35">    35  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_indent"</span>,				_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"indent"</span>]);
<span class="lineno" id="36">    36  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_leading"</span>,			_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"leading"</span>]);
<span class="lineno" id="37">    37  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_leftMargin"</span>,			_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"leftMargin"</span>]);
<span class="lineno" id="38">    38  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_letterSpacing"</span>,		_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"letterSpacing"</span>]);
<span class="lineno" id="39">    39  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_rightMargin"</span>,		_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"rightMargin"</span>]);
<span class="lineno" id="40">    40  </span>		Tweener.registerSpecialProperty(<span class="str_const">"_text_size"</span>,				_textFormat_property_get,	_textFormat_property_set,	[<span class="str_const">"size"</span>]);
<span class="lineno" id="41">    41  </span>
<span class="lineno" id="42">    42  </span>	}
<span class="lineno" id="43">    43  </span>
<span class="lineno" id="44">    44  </span>
<span class="lineno" id="45">    45  </span>	<span class="comment">// ==================================================================================================================================</span>
<span class="lineno" id="46">    46  </span>	<span class="comment">// NORMAL SPECIAL PROPERTY functions ------------------------------------------------------------------------------------------------</span>
<span class="lineno" id="47">    47  </span>
<span class="lineno" id="48">    48  </span>	<span class="comment">// ----------------------------------------------------------------------------------------------------------------------------------</span>
<span class="lineno" id="49">    49  </span>	<span class="comment">// _text</span>
<span class="lineno" id="50">    50  </span>
<span class="lineno" id="51">    51  </span>	<span class="comment doc">/**
<span class="lineno" id="52">    52  </span>	 * Returns the current frame number from the movieclip timeline
<span class="lineno" id="53">    53  </span>	 *
<span class="lineno" id="54">    54  </span>	 * @param		p_obj				Object		MovieClip object
<span class="lineno" id="55">    55  </span>	 * @return							Number		The current frame
<span class="lineno" id="56">    56  </span>	 */</span>
<span class="lineno" id="57">    57  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> _text_get (p_obj:Object, p_parameters:Array, p_extra:Object):Number {
<span class="lineno" id="58">    58  </span>		<span class="comment">//return p_obj._currentFrame;</span>
<span class="lineno" id="59">    59  </span>		<span class="key">return</span> -p_obj.text.length;
<span class="lineno" id="60">    60  </span>	}
<span class="lineno" id="61">    61  </span>
<span class="lineno" id="62">    62  </span>	<span class="comment doc">/**
<span class="lineno" id="63">    63  </span>	 * Sets the timeline frame
<span class="lineno" id="64">    64  </span>	 *
<span class="lineno" id="65">    65  </span>	 * @param		p_obj				Object		MovieClip object
<span class="lineno" id="66">    66  </span>	 * @param		p_value				Number		New frame number
<span class="lineno" id="67">    67  </span>	 */</span>
<span class="lineno" id="68">    68  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> _text_set (p_obj:Object, p_value:Number, p_parameters:Array, p_extra:Object):Void {
<span class="lineno" id="69">    69  </span>		<span class="comment">//p_obj.gotoAndStop(Math.round(p_value));</span>
<span class="lineno" id="70">    70  </span>		<span class="comment">//p_obj.text = </span>
<span class="lineno" id="71">    71  </span>		<span class="key">if</span> (p_value &lt; <span class="num_const">0</span>) {
<span class="lineno" id="72">    72  </span>			<span class="comment">// Old text</span>
<span class="lineno" id="73">    73  </span>			p_obj.text = p_extra.oldText.substr(<span class="num_const">0</span>, -Math.round(p_value));
<span class="lineno" id="74">    74  </span>		} <span class="key">else</span> {
<span class="lineno" id="75">    75  </span>			<span class="comment">// New text</span>
<span class="lineno" id="76">    76  </span>			p_obj.text = p_extra.newText.substr(<span class="num_const">0</span>, Math.round(p_value));
<span class="lineno" id="77">    77  </span>		}
<span class="lineno" id="78">    78  </span>	}
<span class="lineno" id="79">    79  </span>
<span class="lineno" id="80">    80  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> _text_preProcess (p_obj:Object, p_parameters:Array, p_originalValueComplete:Object, p_extra:Object): Number {
<span class="lineno" id="81">    81  </span>		p_extra.oldText = p_obj.text;
<span class="lineno" id="82">    82  </span>		p_extra.newText = p_originalValueComplete;
<span class="lineno" id="83">    83  </span>		<span class="key">return</span> p_extra.newText.length;
<span class="lineno" id="84">    84  </span>	}
<span class="lineno" id="85">    85  </span>
<span class="lineno" id="86">    86  </span>	<span class="comment">// ==================================================================================================================================</span>
<span class="lineno" id="87">    87  </span>	<span class="comment">// PROPERTY GROUPING/SPLITTING functions --------------------------------------------------------------------------------------------</span>
<span class="lineno" id="88">    88  </span>
<span class="lineno" id="89">    89  </span>	<span class="comment">// ----------------------------------------------------------------------------------------------------------------------------------</span>
<span class="lineno" id="90">    90  </span>	<span class="comment">// generic splitters</span>
<span class="lineno" id="91">    91  </span>
<span class="lineno" id="92">    92  </span>	<span class="comment doc">/**
<span class="lineno" id="93">    93  </span>	 * A generic color splitter - from 0xrrggbb to r, g, b with the name of the parameters passed
<span class="lineno" id="94">    94  </span>	 *
<span class="lineno" id="95">    95  </span>	 * @param		p_value				Number		The original _color value
<span class="lineno" id="96">    96  </span>	 * @return							Array		An array containing the .name and .value of all new properties
<span class="lineno" id="97">    97  </span>	 */</span>
<span class="lineno" id="98">    98  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> _generic_color_splitter (p_value:Number, p_parameters:Array):Array {
<span class="lineno" id="99">    99  </span>		<span class="key">var</span> nArray:Array = <span class="key">new</span> Array();
<span class="lineno" id="100">   100  </span>		nArray.push({name:p_parameters[<span class="num_const">0</span>], value:AuxFunctions.numberToR(p_value)});
<span class="lineno" id="101">   101  </span>		nArray.push({name:p_parameters[<span class="num_const">1</span>], value:AuxFunctions.numberToG(p_value)});
<span class="lineno" id="102">   102  </span>		nArray.push({name:p_parameters[<span class="num_const">2</span>], value:AuxFunctions.numberToB(p_value)});
<span class="lineno" id="103">   103  </span>		<span class="key">return</span> nArray;
<span class="lineno" id="104">   104  </span>	}
<span class="lineno" id="105">   105  </span>
<span class="lineno" id="106">   106  </span>
<span class="lineno" id="107">   107  </span>	<span class="comment">// ==================================================================================================================================</span>
<span class="lineno" id="108">   108  </span>	<span class="comment">// NORMAL SPECIAL PROPERTY functions ------------------------------------------------------------------------------------------------</span>
<span class="lineno" id="109">   109  </span>
<span class="lineno" id="110">   110  </span>	<span class="comment doc">/**
<span class="lineno" id="111">   111  </span>	 * Generic function for the textformat properties
<span class="lineno" id="112">   112  </span>	 */</span>
<span class="lineno" id="113">   113  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> _textFormat_property_get (p_obj:Object, p_parameters:Array):Number {
<span class="lineno" id="114">   114  </span>		<span class="key">var</span> fmt:TextFormat = p_obj.getTextFormat();
<span class="lineno" id="115">   115  </span>		<span class="key">var</span> propertyName:String = p_parameters[<span class="num_const">0</span>];
<span class="lineno" id="116">   116  </span>		<span class="key">var</span> isColor:Boolean = p_parameters[<span class="num_const">1</span>];
<span class="lineno" id="117">   117  </span>		<span class="key">if</span> (!isColor) {
<span class="lineno" id="118">   118  </span>			<span class="comment">// Standard property</span>
<span class="lineno" id="119">   119  </span>			<span class="key">return</span> (fmt[propertyName]);
<span class="lineno" id="120">   120  </span>		} <span class="key">else</span> {
<span class="lineno" id="121">   121  </span>			<span class="comment">// Composite, color channel</span>
<span class="lineno" id="122">   122  </span>			<span class="key">var</span> colorComponent:String = p_parameters[<span class="num_const">2</span>];
<span class="lineno" id="123">   123  </span>			<span class="key">if</span> (colorComponent == <span class="str_const">"r"</span>) <span class="key">return</span> AuxFunctions.numberToR(fmt[propertyName]);
<span class="lineno" id="124">   124  </span>			<span class="key">if</span> (colorComponent == <span class="str_const">"g"</span>) <span class="key">return</span> AuxFunctions.numberToG(fmt[propertyName]);
<span class="lineno" id="125">   125  </span>			<span class="key">if</span> (colorComponent == <span class="str_const">"b"</span>) <span class="key">return</span> AuxFunctions.numberToB(fmt[propertyName]);
<span class="lineno" id="126">   126  </span>		}
<span class="lineno" id="127">   127  </span>
<span class="lineno" id="128">   128  </span>		<span class="key">return</span> <span class="key">null</span>;
<span class="lineno" id="129">   129  </span>	}
<span class="lineno" id="130">   130  </span>
<span class="lineno" id="131">   131  </span>	<span class="key">public</span> <span class="key">static</span> <span class="key">function</span> _textFormat_property_set (p_obj:Object, p_value:Number, p_parameters:Array):Void {
<span class="lineno" id="132">   132  </span>		<span class="key">var</span> fmt:TextFormat = p_obj.getTextFormat();
<span class="lineno" id="133">   133  </span>		<span class="key">var</span> propertyName:String = p_parameters[<span class="num_const">0</span>];
<span class="lineno" id="134">   134  </span>		<span class="key">var</span> isColor:Boolean = p_parameters[<span class="num_const">1</span>];
<span class="lineno" id="135">   135  </span>		<span class="key">if</span> (!isColor) {
<span class="lineno" id="136">   136  </span>			<span class="comment">// Standard property</span>
<span class="lineno" id="137">   137  </span>			fmt[propertyName] = p_value;
<span class="lineno" id="138">   138  </span>		} <span class="key">else</span> {
<span class="lineno" id="139">   139  </span>			<span class="comment">// Composite, color channel</span>
<span class="lineno" id="140">   140  </span>			<span class="key">var</span> colorComponent:String = p_parameters[<span class="num_const">2</span>];
<span class="lineno" id="141">   141  </span>			<span class="key">if</span> (colorComponent == <span class="str_const">"r"</span>) fmt[propertyName] = (fmt[propertyName] &amp; 0xffff) | (p_value &lt;&lt; <span class="num_const">16</span>);
<span class="lineno" id="142">   142  </span>			<span class="key">if</span> (colorComponent == <span class="str_const">"g"</span>) fmt[propertyName] = (fmt[propertyName] &amp; 0xff00ff) | (p_value &lt;&lt; <span class="num_const">8</span>);
<span class="lineno" id="143">   143  </span>			<span class="key">if</span> (colorComponent == <span class="str_const">"b"</span>) fmt[propertyName] = (fmt[propertyName] &amp; 0xffff00) | p_value;
<span class="lineno" id="144">   144  </span>		}
<span class="lineno" id="145">   145  </span>		
<span class="lineno" id="146">   146  </span>		p_obj.setTextFormat(fmt);
<span class="lineno" id="147">   147  </span>		p_obj.setNewTextFormat(fmt);
<span class="lineno" id="148">   148  </span>
<span class="lineno" id="149">   149  </span>	}
<span class="lineno" id="150">   150  </span>
<span class="lineno" id="151">   151  </span>}
<span class="lineno" id="152">   152  </span></pre><ul class="main_nav" id="main_nav"><li><a href="../../../overview-summary.html" title="Overview of SASAPI" class="button">Overview</a></li><li><a href="package-summary.html" title="Overview of package caurina.transitions.properties" class="button">Package</a></li><li><a href="TextShortcuts.html" title="Detail of caurina.transitions.properties.TextShortcuts API" class="button">Class</a></li><li><span class="button nav_current">Source</span></li><li><a href="../../../index-files/index.html" title="Alpabetical index of types and members" class="button">Index</a></li></ul><div class="footer"><a href="http://www.badgers-in-foil.co.uk/projects/as2api/" title="ActionScript 2 API Documentation Generator">as2api</a></div></body></html>